Для общего представления прочитайте "Шаг 161 - Что такое Microsoft Agent.", "Шаг 162 - Как создают агентов.", "Шаг 138 - Использование Microsoft Agent.". Создаем приложение на базе диалогового окна и из галереи компонент добавляем элемент управления.

Вас просят о создании всяких классов. Создавайте все. После этого агента нужно поместить на диалог а заодно и создать кнопку по которой он будет появляться.

Классы лучше спрятать в отдельную папочку.

Связываем кнопку с событием, а в описание класса диалога добавляем необходимые заголовочные файлы.
// AgentDlg.h : header file
//
//{{AFX_INCLUDES()
#include "agentctlex.h"
//}}AFX_INCLUDES
#include "AgentCtlCharacters.h"
#include "AgentCtlCharacterEx.h"
#include "AgentCtlRequest.h"
Теперь нам нужно объявить дополнительные классы.
class CAgentDlg : public CDialog
{
// Construction
public:
CAgentDlg(CWnd* pParent = NULL); // standard constructor
CAgentCtlCharacters cAgChr;
CAgentCtlRequest cr;
CAgentCtlCharacterEx crEx;
// Dialog Data
//{{AFX_DATA(CAgentDlg)
enum { IDD = IDD_AGENT_DIALOG };
Самый главный вопрос, как и что будет происходить. Смотрим рисунок.

Мы из основного класса извлекаем класс изображения. В него зачитываем изображение и получаем новый класс. Из него же получаем класс расширенного изображения в который передаем идентификатор. Дальше отображаем. Вот так это выглядит в коде.
void CAgentDlg::OnButton1()
{
LPWSTR name = L"merlin.ACS";
VARIANT vars;
vars.vt = VT_BSTR;
vars.bstrVal = SysAllocString(name);
cAgChr=m_Agent.GetCharacters();
cr=cAgChr.Load("CharID",vars);
crEx=cAgChr.Character("CharID");
VARIANT var;
var.vt = VT_I2;
var.iVal = 0;
crEx.Show(var);
}
А вот результат нажатия на кнопку.
